package nbranch.tree.level.order;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import nbranch.tree.perorder.Node;

/**
 * @Date 2020/03/16
 * @author 王光浩
 * @Thinking 使用迭代。
 * @Analysis 时间复杂度O（n）,空间复杂度O（m）
 */
public class MyMethodTwo {
	private List<List<Integer>> res;
	public List<List<Integer>> levelOrder(Node root) {
		res=new ArrayList<List<Integer>>();
		if(root==null)return res;
		recursively(root,0);
		return res;
	}
	private void recursively(Node root,int level) {
		if(level>=res.size())res.add(new LinkedList<Integer>());
		res.get(level).add(root.val);
		if(root.children!=null)
			for(Node tem:root.children) {
				recursively(tem,level+1);
			}
	}
}
